﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PKTools.Scheduler
{
    public interface IJob
    {
        IJobStep GetFirstStep();

        void Stop();
        bool Schedule(DateTime currentTime);

        void BeforeExecution(DateTime currentTime);
        void Finalize(Exception ex);
    }

    public interface IJobStep
    {
        IJobStep GetNextStep();
        IJob GetJob();
        bool GetStopJob();

        void CreateTask();
    }
}
